package com.richard.library.http.request;

/**
 * @author: Richard
 * @createDate: 2024/1/31 11:31
 * @version: 1.0
 * @description: 处理请求响应数据(仅支持处理请求结果为Json或String类型body数据的响应)
 */
@FunctionalInterface
public interface ProcessResponseEvent {

    /**
     * 处理请求响应数据
     *
     * @param request  当前请求
     * @param response 响应结果
     * @param th       仅请求失败时有值
     * @param <T>      请求结果数据泛型
     * @return 最终处理之后的响应结果
     */
    <T> T process(RequestService request, T response, Throwable th) throws Throwable;

}
